// 组合模式
// 文件夹和文件
// IS - A 父子关系
// HAS-A 聚合关系

const Folder = function(name){

}



// 模版方法模式
// 享元模式 (flyweight) - 以时间换空间的优化模式
  // 职责链
// 适配器 -> wrapper
// 中介者模式 - 迪米特法则(LOD)
// 装饰者// AOP
// 状态模式 
// 外观模式

// 2.数据结构
// 双端队列 普通队列和栈的结合体
// 循环队列
// 链表
// Set
// 二叉搜索树 BinarySearchTree
// 图
// 图在数学上的概念 G = (V, E) V - 一组顶点 E - 一组边 连接V的顶点

// 相邻顶点  AB AC AD
// 度 A - 3 E - 1
// 路径 ACDG
// 简单路径 ADG
// 环 ACDA

// 邻接矩阵
//   A  B  C  D  E  F  G  H
// A 0  1  1  1  0  0  0  0
// B 1  0  0  0  1  1  0  0

// 邻接表
// A B C D
// B A E F
// C A D G
// ...

// 关联矩阵
//   v1 v2 v3
// A  1  1  1
// B  1  0  0
// C  0  0  1
// ...

// 3.
// 最短路径 - Dijkstra算法(贪心算法)
// Floyd-Warshall算法

// 冒泡
// 选择排序
// 插入
// 归并 O(nlog(n))
// 快速排序 O(nlog(n))
// 计数排序 O(n+k) k-临时数组大小
// 桶排序
// 基数排序

// 二分搜索
// 动态规划
// 最长公共子序列(LCS)
// 回溯算法

//1. diff 算法